home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / DiceSource / src / fsovl / zip / globals.h < prev   
C/C++ Source or Header  |  1993-01-24  |  1KB  |  72 lines

  1.  
  2. /*
  3.  *  GLOBALS.H    - GLOBALS FOR ZIP AND UNZIP
  4.  *
  5.  *  The union structure is designed so we can share zip/unzip buffer memory
  6.  */
  7.  
  8. #ifndef WSIZE            /* max 32K, power of 2    */
  9. #define WSIZE 32768
  10. #endif
  11.  
  12. #ifdef SMALL_MEM
  13. #define HASH_BITS    13
  14. #define LIT_BUFSIZE    0x2000
  15. #else
  16. #ifdef MEDIUM_MEM
  17. #define HASH_BITS    14
  18. #define LIT_BUFSIZE    0x4000
  19. #else
  20. #define HASH_BITS    15
  21. #define LIT_BUFSIZE    0x8000
  22. #endif
  23. #endif
  24.  
  25. #define DIST_BUFSIZE    LIT_BUFSIZE
  26.  
  27. #define HASH_SIZE    (1 << HASH_BITS)
  28. #define HASH_MASK    (HASH_SIZE-1)
  29. #define WMASK        (WSIZE-1)
  30.  
  31. #define MAX_BITS    13
  32. #define HSIZE        (1 << MAX_BITS)
  33.  
  34. typedef unsigned char byte;
  35. typedef unsigned char uch;
  36. typedef unsigned short ush;
  37. typedef unsigned long ulg;
  38.  
  39. typedef ush Pos;
  40.  
  41. union Globals {
  42.     struct {
  43.     uch window[2L*WSIZE];
  44.     Pos prev[WSIZE];
  45.     Pos head[HASH_SIZE];
  46.     uch l_buf[LIT_BUFSIZE];
  47.     ush d_buf[DIST_BUFSIZE];
  48.     char file_outbuf[1024];
  49.     } zip;
  50.     struct {
  51.     short prefix_of[HSIZE+2];
  52.     byte suffix_of[HSIZE+2];
  53.     byte stack[HSIZE+2];
  54.     byte slide[WSIZE];
  55.     } unzip;
  56. };
  57.  
  58. extern __far union Globals Globals;
  59.  
  60. #define window        Globals.zip.window
  61. #define prev        Globals.zip.prev
  62. #define head        Globals.zip.head
  63. #define l_buf        Globals.zip.l_buf
  64. #define d_buf        Globals.zip.d_buf
  65. #define file_outbuf    Globals.zip.file_outbuf
  66.  
  67. #define prefix_of    Globals.unzip.prefix_of
  68. #define suffix_of    Globals.unzip.suffix_of
  69. #define stack        Globals.unzip.stack
  70. #define slide        Globals.unzip.slide
  71.  
  72.